简介
GreenRobot Essentials为Android和Java项目提供通用的实用工具。 在Android开发的早期,它就已经存在了。整个库很简单,jar包 <100k,在效率和性能上也是独树一帜的。
特性
Essentials是一个通用类的集合,我们发现在许多场合都很有用。
使用要点的主要原因:
- 在项目中编写较少的代码
- 专门实现与标准API相比更好的性能
- 超轻量级:<100k
- 兼容Android和Java
特征:
- IO utilities 在IO流(基于字节和字符)和digests(例如MD5和SHA-1)上起到很大的帮助作用。
- File utilities 简化了从字符串/字节/对象写入文件或向文件写入字符串/字节/对象。还包括从文件获取哈希和复制文件。
- String utilities允许有效分割和连接字符串,hex和MD5创建,以及其他有用的字符串助手。
- Better hash functions: :我们的Murmur3实现提供了优越的散列质量,并且胜过标准的Java散列函数
- Specialized Streams: 例如优化的PipedOutputStream替换(基于循环字节缓冲器)
- Hash set and map for primitive long keys 原始长键的哈希集和映射优于Java集合API的通用版本
- Multimaps多映射提供了列表或集合的映射,以简化为单个键存储多个值
- Object cache 对象缓存具有强大的配置选项:软/弱/强引用,最大大小和基于时间的到期
- Base64实现(从iharder.net捆绑)用于较低版本的Java和Android(包括输入/输出流)
集成
1. 添加到工程
使用最新版本
1 | compile 'org.greenrobot:essentials:3.0.0-RC1' |
或者使用老版本
1 | compile 'de.greenrobot:java-common:2.3.1' |
针对Maven
1 | <dependency> |
2. 示例代码
1 | // Get all bytes from stream and close the stream safely |
多映射Map(版本v2.2加入)
1 | ListMap<String,String> multimap = new ListMap<>(); |
散列函数实现 java.util.zip.Checksum,所以下面的代码可能看起来很眼熟
1 | Murmur3A murmur = new Murmur3A(); |
所有散列可以通过多次调用update(…)来逐步计算。 我们的Murmur3A实现更进一步,以非常有效的方式提供原始数据的更新:
1 | // reuse the previous instance and start over to calculate a new hash |
实用程序类是直接的,没有依赖性,所以你应该很好地通过看看他们的源代码来掌握它们。 大多数方法名称应该是自解释的,通常你会在需要的地方找到JavaDocs。